package cn.hy.机考.part01;

import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

/**
 * @author zhaomu
 *
 * 七、找到好朋友
 *
 * N 个小朋友站成一队，第 i 个小朋友的身高为 height[i]，第 i 个小朋友可以 看到第一个比自己身高更高的小朋友 j
 * 那么 j 是 i 的好朋友 (要求:j>i) 。 请重新生成一个列表，对应位置的输出是每个小朋友的好朋友的位置。如果没有 看到好朋友，请在该位置用 0 代替。
 * 第一行输入 N，N 表示有 N 个小朋友
 * 第二行输入 N 个小朋友的身高 height[i]，都是整数
 * 输出 N 个小朋友的好朋友的位置
 * 8
 * 123 124 125 121 119 122 126 123
 * 1 2 6 5 5 6 0 0
 * 123的好朋友是1位置上的124 ，124的好朋友是2位置上的125，125的好朋 友是 6 位置上的 126，依此类推
 *
 */
public class Demo07 {

    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(System.in);
        // 1、小朋友的个数
        int n = sc.nextInt();
        // 2、 各个小朋友的身高
        int [] heights = new int[n];
        for(int i = 0; i < n; i++){
            heights[i] = sc.nextInt();
        }
        System.out.println(Arrays.toString(heights));
        // 3 、定义数组存放小朋友好朋友的位置
        int[] positions = new int[n];
        // 4、每个小朋友和之后的小朋友比身高，如果后面有小朋友身高比他高，一旦找到，就把好朋友的位置传到新数组，结束本次循环，
        for (int i = 0; i < n - 1; i++) {
            for (int j = i + 1; j < n; j++) {
                if ( heights[i] < heights[j]) {
                    positions[i] = j;
                    // System.out.println("小朋友的身高为："+ heights[i]  +  "好朋友的身高为：" + heights[j] + "位置为：" + positions[i]);
                    break;
                } else {
                    positions[i] = 0;
                }
            }
        }
        positions[n-1] = 0;
        System.out.println( Arrays.toString( positions ) );
    }

}
